home *** CD-ROM | disk | FTP | other *** search
/ Chip: 2005 Utilities / CHIP Utilities 2005.7z / CHIP Utilities 2005.iso / images / freesco.igz / freesco.img / router / rc / rc_pfwd < prev    next >
Encoding:
Text File  |  2003-05-03  |  1.1 KB  |  55 lines

  1. #!/bin/sh
  2. #
  3. # Start/stop port forwarding
  4.  
  5.  
  6. . /etc/system.cfg
  7. . /etc/colors
  8. . /etc/chat.pwd
  9. . /etc/live.cfg
  10.  
  11. [ "$ENAMSQ" = y ] || exit 0
  12.  
  13. fn2()    { ps |sed -n '/    rc_pfwd/P'; }
  14. stp()    {
  15.     echo -n "Disabling port forwarding...        "
  16.     ipportfw -C
  17.     ipautofw -F
  18.     = $?
  19. }
  20. str()    {
  21.     echo -n "Enabling port forwarding...        "
  22.     IPADDR="$IPADDR0"
  23.     if [ "$ROUTER" = dialup -o "$ROUTER" = leased -o "$USEPPP0" = y ]; then
  24.         if [ "`ifconfig | grep ppp0`" ]; then
  25.                 set -- `ifconfig ppp0 | sed -n /inet/P | sed 's/i[^:]*://;s/P.*//'`
  26.                     IPADDR="$1"
  27.         else
  28.             = 0 "Done $CC Delayed" 
  29.             fork rc_pfwd delayed 
  30.             exit 1
  31.         fi 
  32.     fi
  33.     for i in `cat /etc/portfw.cfg | sed '/^$/d;s/\#.*//;s/$/\    /'`; do
  34.     set -- `echo "$i" | sed s/,/\    /g`
  35.     [ "$1" ] || continue
  36.     if [ "`echo "$3" |sed -n '/-/P'`" ]; then 
  37.         TMP=`echo "$3" |sed 's/-//'`
  38.         ipautofw -A -r $1 $2 $TMP -h $4
  39.     else
  40.         [ "$1" = udp ] && TMP=u || TMP=t
  41.         ipportfw -A "-$TMP" "${IPADDR}/$2" -R "${4}/$3" 
  42.     fi
  43.     done
  44.     = 0 "Done"
  45. }
  46.  
  47. case "$1" in
  48.     delayed) sleep 30; str;;
  49.     start)    str;;
  50.     stop)    stp;;
  51.     restart|newip) stp;str;;
  52.     status)    ipportfw -L;;
  53. esac
  54.  
  55.